﻿public class PlayerHardStoppingState : PlayerStoppingState
{
    public PlayerHardStoppingState(PlayerMovementMachine stateMachine) : base(stateMachine)
    {
    }
    
#region IState Methods
    public override void Enter()
    {
        base.Enter();
        StartAnimation(StateMachine.Player.AnimationData.HardStopParameterHash);
        StateMachine.ReusableData.DecelerationForce =
            StateMachine.Player.Data.PlayerGroundedData.StoppingData.HardDecelerationForce;
        
        StateMachine.ReusableData.CurrentJumpForce = airborneData.JumpData.StrongForce;
    }
#endregion

#region Reusable Methods
    protected override void OnMove()
    {
        if (StateMachine.ReusableData.ShouldWalk)
            return;
        StateMachine.ChangeState(StateMachine.RunningState);
    }

    public override void Exit()
    {
        base.Exit();
        StopAnimation(StateMachine.Player.AnimationData.HardStopParameterHash);
    }
#endregion
}